Matthias Clasen [Thu, 7 Dec 2017 04:39:27 +0000 (23:39 -0500)]
Fix a typo in the docs
Matthias Clasen [Thu, 7 Dec 2017 04:36:35 +0000 (23:36 -0500)]
Add a Cut menuitem to the dnd demo
Matthias Clasen [Thu, 7 Dec 2017 04:10:56 +0000 (23:10 -0500)]
More work on the dnd demo
Still no dnd in the drag-and-drop demo...
Timm Bäder [Wed, 6 Dec 2017 07:23:03 +0000 (08:23 +0100)]
paned: Restrict picking to allocation
Same reason as GtkViewport does it: We might allocate child widgets
outside of the paned's content allocation. For drawing, we add a clip
node.
This was causing the "Record" button in the inspector recorder to ignore
pointer events since the treeview column header label in the GtkPaned
was swallowing it.
Timm Bäder [Wed, 6 Dec 2017 06:56:12 +0000 (07:56 +0100)]
Remove all gtk_widget_get_content_size usages
And remove the function itself. Make everything use gtk_widget_get_width
and gtk_widget_get_height instead.
Matthias Clasen [Wed, 6 Dec 2017 01:45:39 +0000 (17:45 -0800)]
Add some copy-paste for widgets demo
Not sure this is quite right yet.
Matthias Clasen [Wed, 6 Dec 2017 00:22:06 +0000 (16:22 -0800)]
Start a dnd demo
Nothing to see yet.
Matthias Clasen [Tue, 5 Dec 2017 16:56:09 +0000 (08:56 -0800)]
Update gtk docs for recent changes
Clipboards are gone, textures appear...
Matthias Clasen [Tue, 5 Dec 2017 16:37:18 +0000 (08:37 -0800)]
Drop get/set_scale_factor from gsk docs
They no longer exist.
Alexander Larsson [Tue, 5 Dec 2017 15:10:06 +0000 (16:10 +0100)]
broadway: Add broadway_server_lookup_surface helper
Alexander Larsson [Tue, 5 Dec 2017 14:54:36 +0000 (15:54 +0100)]
broadway: Make the use of next_texture_id clearer
It used to actually be pre-incremented, so meant like "one before
next id".
Alexander Larsson [Tue, 5 Dec 2017 13:38:57 +0000 (14:38 +0100)]
broadway: Use "surface" instead of window/toplevel for browser object
Als fixes indentation/tabs and removes some unused code.
Alexander Larsson [Tue, 5 Dec 2017 13:32:56 +0000 (14:32 +0100)]
broadway: Remove references to unused BROADWAY_EVENT_DELETE_NOTIFY
Alexander Larsson [Mon, 4 Dec 2017 14:04:48 +0000 (15:04 +0100)]
broadway: Remove now unused toplevel surface
Christian Hergert [Tue, 5 Dec 2017 03:22:40 +0000 (19:22 -0800)]
autocleanups: allow g_autoptr() usage with GtkTreePath
As the summary says, this allows using g_autoptr(GtkTreePath). This is
useful for API that uses out parameters for GtkTreePath that need to be
freed.
https://bugzilla.gnome.org/show_bug.cgi?id=791234
Emmanuele Bassi [Tue, 5 Dec 2017 11:07:46 +0000 (11:07 +0000)]
Ensure that the path is always set
We are using `path` unconditionally, but it can be conditionally filled.
To avoid inconsistent internal state, and a compiler warning, let's
assert that the variable is always set.
Emmanuele Bassi [Tue, 5 Dec 2017 11:02:20 +0000 (11:02 +0000)]
Fix the build
Use the right argument name in the preconditions check.
Matthias Clasen [Tue, 5 Dec 2017 07:52:48 +0000 (23:52 -0800)]
gdk: Documentation improvements
Matthias Clasen [Tue, 5 Dec 2017 04:38:04 +0000 (20:38 -0800)]
docs: Drop some no longer existing functions
Matthias Clasen [Tue, 5 Dec 2017 07:09:54 +0000 (23:09 -0800)]
Revert "clipboard: Add gdk_clipboard_set()"
This reverts commit
dc50e0637ffa8bc7a369d00a5d8e7656d03c3781.
This broke the build.
Benjamin Otte [Tue, 5 Dec 2017 04:16:49 +0000 (05:16 +0100)]
clipboard: Add gdk_clipboard_set()
This API allows specifying a GType and va_args of a value of that type
to set the clipboard contents. This massively simplifies setting weird
object types into the clipboard.
2 example patches included in this patch are the GtkTextBuffer and the
file list in the file chooser.
Using gobject-introspection, this should work without specifying the
type, so that you can literlally say
clipboard.set ("Hello World")
or
clipboard.set (pixbuf)
which is why I've also marked all other setters as (skip). They just
exist in C as wrappers for type safety reasons.
Benjamin Otte [Tue, 5 Dec 2017 03:06:20 +0000 (04:06 +0100)]
dnd: Remove x/y coordinates from drag-data-received
This is in preparation of using input streams to show that these
coordinates aren't needed most of the time and can otherwise be saved
during GtkWidget::drag-drop.
Matthias Clasen [Tue, 5 Dec 2017 00:18:24 +0000 (16:18 -0800)]
Expand the docs
Cross-reference the serializers.
Matthias Clasen [Tue, 5 Dec 2017 00:08:32 +0000 (16:08 -0800)]
Document gdk_content_provider_contents_changed
Matthias Clasen [Tue, 5 Dec 2017 00:06:02 +0000 (16:06 -0800)]
gdk: Expand the clipboard documentation
Matthias Clasen [Mon, 4 Dec 2017 23:58:30 +0000 (15:58 -0800)]
gdk: Fill in some blanks in the docs
This is just an initial cut; more work is needed.
Matthias Clasen [Mon, 4 Dec 2017 19:04:02 +0000 (11:04 -0800)]
Add a long description for GdkTexture
Matthias Clasen [Mon, 4 Dec 2017 18:35:51 +0000 (10:35 -0800)]
Move GdkGrabStatus docs
This enum was the odd man out in the initialization docs.
Move it to GdkSeat where grabbing happens nowadays.
Matthias Clasen [Mon, 4 Dec 2017 18:03:40 +0000 (10:03 -0800)]
Add new stuff to the gdk docs
Document all the things.
Matthias Clasen [Mon, 4 Dec 2017 18:00:44 +0000 (10:00 -0800)]
Fix the gdk doc build
Some types don't exist anymore.
Timm Bäder [Mon, 4 Dec 2017 11:52:50 +0000 (12:52 +0100)]
switch: Remove unused variable
Benjamin Otte [Mon, 4 Dec 2017 17:28:14 +0000 (18:28 +0100)]
wayland: Initialize variable
Otherwise we get NULL-warnings when we try to use (read: unref) it.
Matthias Clasen [Fri, 1 Dec 2017 23:01:57 +0000 (15:01 -0800)]
actionbar: Add more docs for gtk_action_bar_get_revealed
This stops gtk-doc complaints.
Matthias Clasen [Fri, 1 Dec 2017 23:00:39 +0000 (15:00 -0800)]
about dialog: Add some missing docs
gtk_about_dialog_set/get_system_information are new,
and were missing docs.
Matthias Clasen [Fri, 1 Dec 2017 22:58:33 +0000 (14:58 -0800)]
docs: Remove gtk_application_is_inhibited
It doesn't exist anymore.
Timm Bäder [Mon, 4 Dec 2017 11:42:52 +0000 (12:42 +0100)]
Remove some more gtk_widget_get_content_size uses
Timm Bäder [Sun, 3 Dec 2017 18:03:48 +0000 (19:03 +0100)]
widgetbowl: Add some more widget types
Timm Bäder [Sat, 2 Dec 2017 10:27:02 +0000 (11:27 +0100)]
testswitch: Remove unnecessary gtk_widget_show calls
Timm Bäder [Mon, 4 Dec 2017 11:14:21 +0000 (12:14 +0100)]
image: Stop using gtk_widget_get_content_size
Timm Bäder [Thu, 23 Nov 2017 10:29:47 +0000 (11:29 +0100)]
popover: Stop using gtk_widget_get_content_size
Timm Bäder [Sun, 3 Dec 2017 18:00:09 +0000 (19:00 +0100)]
spinner: Stop using gtk_widget_get_content_size
Benjamin Otte [Sun, 3 Dec 2017 20:56:24 +0000 (21:56 +0100)]
gsk: Remove gsk_render_node_set_scaling_filters()
This is a leftover from the very early rendernode that we forgot to delete.
This can be seen by the fact that it is settable on an immutable object.
Piotr Drąg [Sun, 3 Dec 2017 17:38:39 +0000 (18:38 +0100)]
Use Unicode quotation marks in new strings
See https://developer.gnome.org/hig/stable/typography.html
https://bugzilla.gnome.org/show_bug.cgi?id=772371
Piotr Drąg [Sun, 3 Dec 2017 17:24:36 +0000 (18:24 +0100)]
Update POTFILES.in
Руслан Ижбулатов [Sun, 3 Dec 2017 06:08:44 +0000 (06:08 +0000)]
GDK W32: Remove stray debug code
I have no idea how this slipped into master (these two lines are not present
in the same commit that went into gtk-3-22).
Benjamin Otte [Sun, 3 Dec 2017 05:50:51 +0000 (06:50 +0100)]
dnd: Remove unused variables
Matthias Clasen [Thu, 24 Aug 2017 21:40:16 +0000 (17:40 -0400)]
Remove GdkDragProtocol from the api
...together with apis that return it. We were not using this
information in GTK+ at all, so no need to provide it.
Matthias Clasen [Thu, 24 Aug 2017 18:30:47 +0000 (14:30 -0400)]
Drop api that is only for unmanaged dnd
These functions are not needed as public api anymore.
Matthias Clasen [Sun, 3 Dec 2017 05:22:25 +0000 (06:22 +0100)]
dnd: Handle rootwin drop in gdk
This lets us drop the only use of the drag protocol in gtk.
Matthias Clasen [Wed, 23 Aug 2017 19:50:17 +0000 (15:50 -0400)]
dnd: Remove much of the unmanaged dnd
Benjamin Otte [Sun, 3 Dec 2017 04:39:08 +0000 (05:39 +0100)]
wayland: Add primary clipboard subclass
I decided to put this in a custom subclass, because then I could keep
the whole gtk primary protocol self-contained.
The other option would have been reusing GdkWaylandClipboard, but that
didn't seem worth it, especially because that code needs to interact
with the DND machinery, while the primary doesn't.
Benjamin Otte [Sun, 3 Dec 2017 02:51:43 +0000 (03:51 +0100)]
wayland: Implement taking over the clipboard
The clipboard is now complete.
That was fast.
Benjamin Otte [Sun, 3 Dec 2017 01:48:17 +0000 (02:48 +0100)]
wayland: Implement reading the clipboard
We now keep track of what's in the clipboard and allow people to read
its contents.
Benjamin Otte [Sat, 2 Dec 2017 20:54:36 +0000 (21:54 +0100)]
wayland: Add skeleton for a GdkClipboardWayland
Creates the source file and a custom subclass and makes sure it's used
by GDK.
Benjamin Otte [Sat, 2 Dec 2017 15:05:53 +0000 (16:05 +0100)]
gdk: Get rid of owner change events
They're unused now.
Benjamin Otte [Sat, 2 Dec 2017 14:42:12 +0000 (15:42 +0100)]
gtk: Remove GtkClipboard
Benjamin Otte [Sat, 2 Dec 2017 14:41:22 +0000 (15:41 +0100)]
icon-browser: Port to new clipboard
Benjamin Otte [Sat, 2 Dec 2017 13:39:37 +0000 (14:39 +0100)]
gtk-demo: Port to GdkClipboard
Benjamin Otte [Sat, 2 Dec 2017 13:38:57 +0000 (14:38 +0100)]
clipboard: Change image convenience APIs
Don't use pixbufs anymore, use textures.
Benjamin Otte [Sat, 2 Dec 2017 13:36:57 +0000 (14:36 +0100)]
gdk: Add (de)serializers for GDK_TYPE_TEXTURE
We want to use textures more, so we should be able to use them for
copy/paste and dnd.
Benjamin Otte [Fri, 1 Dec 2017 06:42:36 +0000 (07:42 +0100)]
x11: Handle case where clipboard was reclaimed quickly
When the reply to a TARGETS request comes in, the clipboard may already
be reclaimed by the local app. Deal with that case (in an ugly way,
strictly speaking we should use a cancellable here).
This happens for example at startup when the initial TARGETS requests
have not been answered until after the main widow popped up. And if such
a window immediately claims the primary clipboard (like when the initial
focus is inside an entry), this race will happen.
Benjamin Otte [Fri, 1 Dec 2017 06:21:21 +0000 (07:21 +0100)]
entry: Port to GdkClipboard
Benjamin Otte [Fri, 1 Dec 2017 05:20:28 +0000 (06:20 +0100)]
x11: Implement storing the clipboard
Benjamin Otte [Fri, 1 Dec 2017 05:06:53 +0000 (06:06 +0100)]
x11: Implement MULTIPLE requests
Benjamin Otte [Fri, 1 Dec 2017 05:05:07 +0000 (06:05 +0100)]
tests: Don't crash if widgets go away before clipboard
Don't g_signal_connect() to the clipboard without protection - the
clipboard might outlast you and still emit signals.
Benjamin Otte [Fri, 1 Dec 2017 01:53:47 +0000 (02:53 +0100)]
x11: Introduce GdkX11PendingSelectionNotify
This object tracks the SelectionNotifyEvent that has to be sent in
response to a SelectionRequest.
Currently it just looks like code reshuffling, but it's a prerequisite
for handling MULTIPLE, which requires to only send the notify after
every stream has writtten at least once.
But anyway, code is cleaner now, so it's a win!
Benjamin Otte [Thu, 30 Nov 2017 23:02:12 +0000 (00:02 +0100)]
x11: Split out a function
This will be necessary for MULTIPLE handling.
Benjamin Otte [Thu, 30 Nov 2017 00:05:02 +0000 (01:05 +0100)]
main: Implement storing all clipboards
Benjamin Otte [Wed, 29 Nov 2017 23:09:37 +0000 (00:09 +0100)]
application: Put shared code into a common function
Benjamin Otte [Wed, 29 Nov 2017 22:23:36 +0000 (23:23 +0100)]
clipboard: Add infrastructure to store clipboards
Clipboard managers will be so happy once the backends actually implement
it!
Benjamin Otte [Wed, 29 Nov 2017 09:07:52 +0000 (10:07 +0100)]
contentprovider: Add ref_storable_formats()
This is to be used for advocating to clipboard managers.
Benjamin Otte [Wed, 29 Nov 2017 08:52:38 +0000 (09:52 +0100)]
filechooserwidget: Port to new clipboard
We use the new GDK_TYPE_FILE_LIST here.
Benjamin Otte [Wed, 29 Nov 2017 08:37:50 +0000 (09:37 +0100)]
gdk: Add GDK_TYPE_FILE_LIST with serializers
This is a GSList of GFile and we want it so we can operate with lists of
files and text/uri-list.
I chose GSList over GList because that's what the GtkFileChooser API
uses, too.
Benjamin Otte [Wed, 29 Nov 2017 07:13:06 +0000 (08:13 +0100)]
gdk: Add serializers and deserializers for GFile
in particular, support:
GFile <=> text/uri-list
GFile => text/plain
Benjamin Otte [Tue, 28 Nov 2017 03:00:31 +0000 (04:00 +0100)]
tests: Improve formats list for testclipboard2
Benjamin Otte [Tue, 28 Nov 2017 01:36:16 +0000 (02:36 +0100)]
label: Port to new clipboard
Benjamin Otte [Tue, 28 Nov 2017 01:09:21 +0000 (02:09 +0100)]
textview: Redo clipboard handling
Instead of using GtkClipboard and handling everything ourselves, we now
put GtkTextBuffer into the GdkClipboard and register (de)serializers for
text/plain.
Benjamin Otte [Tue, 28 Nov 2017 01:02:06 +0000 (02:02 +0100)]
gdk: Add gdk_content_formats_new_for_gtype()
Many places create formats for a single tpye, so make it easy for them
to get this without having to create a builder first.
Benjamin Otte [Tue, 28 Nov 2017 00:58:56 +0000 (01:58 +0100)]
gdk: Allow setting task data on (de)serializers
This mirrors GTask.
Benjamin Otte [Sun, 26 Nov 2017 21:39:47 +0000 (22:39 +0100)]
gtk-demo: Port clipboards example to new clipboard
Benjamin Otte [Sun, 26 Nov 2017 06:54:55 +0000 (07:54 +0100)]
recentchooser: Port to GdkClipboard
Benjamin Otte [Sun, 26 Nov 2017 06:38:12 +0000 (07:38 +0100)]
linkbutton: Port to GdkClipboard
Benjamin Otte [Sun, 26 Nov 2017 06:35:19 +0000 (07:35 +0100)]
a11y: Port to GdkClipboard
Benjamin Otte [Sat, 25 Nov 2017 22:55:34 +0000 (23:55 +0100)]
widget: Add gtk_widget_get_clipboard()
... and gtk_widget_get_primary_clipboard().
They both give out the new GdkClipboard.
Benjamin Otte [Sat, 25 Nov 2017 22:20:16 +0000 (23:20 +0100)]
widget: gtk_widget_get_clipboard => gtk_widget_get_old_clipboard
Just rename the function, so the previous one can be used for the
new clipboard.
Benjamin Otte [Sat, 25 Nov 2017 21:54:32 +0000 (22:54 +0100)]
tests: Open a 2nd display in testclipboard2
This allows testing local transfer of data as well as remote transfer
(by transferring data between clipboards of both Displays).
Benjamin Otte [Sat, 25 Nov 2017 20:59:39 +0000 (21:59 +0100)]
x11: Implement claiming the X Selection with the clipboard
... and of course support writing to other apps.
Benjamin Otte [Sat, 25 Nov 2017 07:37:03 +0000 (08:37 +0100)]
tests: Add possibility to set invalid UTF-8 and clear clipboard
Benjamin Otte [Sat, 25 Nov 2017 00:25:31 +0000 (01:25 +0100)]
x11: Add gdk_x11_display_get_max_request_size()
There's multiple places in the clipboard code where I need it, so make
it a custom function.
Benjamin Otte [Fri, 24 Nov 2017 19:42:40 +0000 (20:42 +0100)]
clipboard: Allow claiming the clipboard to fail
Also make clipboard_claim() a vfunc so backends can override it.
Because the whole operation a vfunc, backends have the option of adding
code before the actual claim is done and potentially even fail or do
something after the successful claim.
Benjamin Otte [Fri, 24 Nov 2017 10:34:19 +0000 (11:34 +0100)]
gdkcontentformats: Change the matching API
Instead of having just one function that has the gtype and mime type as
out arguments, have 3 functions: 1 that finds any match, 1 that finds a
GType match and one for a mime type match.
This makes the API way more convenient to use.
Benjamin Otte [Fri, 24 Nov 2017 10:15:51 +0000 (11:15 +0100)]
clipboard: Add serialization
This completes the local clipboard code.
Benjamin Otte [Fri, 24 Nov 2017 09:13:23 +0000 (10:13 +0100)]
clipboard: Implement local fallback clipboard transfers
This requires implementing a "pipe" so we can have 2 streams running:
contentprovider => serializer => outputstream
inputstream => deserializer => reader
And the pipe shoves the data from the outputstream into the inputstream.
Benjamin Otte [Fri, 24 Nov 2017 05:17:37 +0000 (06:17 +0100)]
clipboard: Introduce GdkContentProvider
GdkContentProvider is the object that represents local data in the
clipboard.
This patch only introduces the object and adds the clipboard properties,
it does not yet provide a way for the actual implementations to access
it.
The only access that is implemented is the local shortcut GValue access.
Benjamin Otte [Fri, 24 Nov 2017 05:07:09 +0000 (06:07 +0100)]
clipboard: Make value getters set the passed in value
Don't return a const GValue, that's ugly API. Instead require people to
pass in a preinitialized GValue and set that one.
Benjamin Otte [Thu, 23 Nov 2017 00:59:19 +0000 (01:59 +0100)]
x11: Improve fallbacks for text
(1) Try all passed in formats in order if one of them fails.
(2) Don't blindly accept all formats, make sure they are mime types
(3) Add a bunch of special non-mime types that plug converters to
get to mime types
Benjamin Otte [Wed, 22 Nov 2017 13:19:02 +0000 (14:19 +0100)]
clipboard: Add gdk_clipboard_read_text_async()
Also add deserializers for G_TYPE_STRING.
Benjamin Otte [Wed, 22 Nov 2017 12:21:25 +0000 (13:21 +0100)]
clipboard: Add gdk_clipboard_read_pixbuf_async()
Benjamin Otte [Wed, 22 Nov 2017 09:44:30 +0000 (10:44 +0100)]
gdk: Im[plement content deserializing
Add infrastructure to do GInputStream => GType conversions. Use that to
implement gdk_clipboard_read_value() which reads into GValues.
Benjamin Otte [Wed, 22 Nov 2017 09:43:04 +0000 (10:43 +0100)]
x11: Improve debugging output for selection input stream